// Generated from code/ch16/Cymbol.g by ANTLR 4.9.0-SNAPSHOT


import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor";

import { DeclContext } from "./CymbolParser";
import { VarDeclarationContext } from "./CymbolParser";
import { TypeContext } from "./CymbolParser";
import { ExpreessionContext } from "./CymbolParser";
import { PrimaryContext } from "./CymbolParser";


/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by `CymbolParser`.
 *
 * @param <Result> The return type of the visit operation. Use `void` for
 * operations with no return type.
 */
export interface CymbolVisitor<Result> extends ParseTreeVisitor<Result> {
	/**
	 * Visit a parse tree produced by `CymbolParser.decl`.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	visitDecl?: (ctx: DeclContext) => Result;

	/**
	 * Visit a parse tree produced by `CymbolParser.varDeclaration`.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	visitVarDeclaration?: (ctx: VarDeclarationContext) => Result;

	/**
	 * Visit a parse tree produced by `CymbolParser.type`.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	visitType?: (ctx: TypeContext) => Result;

	/**
	 * Visit a parse tree produced by `CymbolParser.expreession`.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	visitExpreession?: (ctx: ExpreessionContext) => Result;

	/**
	 * Visit a parse tree produced by `CymbolParser.primary`.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	visitPrimary?: (ctx: PrimaryContext) => Result;
}

